linux 部署 SonarQube

SonarQube介绍

SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码气味。它可以与您现有的工作流程集成,以支持跨项目分支和拉取请求的连续代码检查。

Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。

主要特点:

代码覆盖:通过单元测试,将会显示哪行代码被选中

改善编码规则

搜寻编码规则:按照名字,插件,激活级别和类别进行查询

项目搜寻:按照项目的名字进行查询

对比数据:比较同一张表中的任何测量的趋势

sonar安装

1,下载sonar

sonar支持跨平台,如linuxwindows等,下载地址:

https://www.sonarqube.org/downloads/

我下载的是6.6的版本,新版本好象不再支持mysql。下载后解压可以看到如下目录:

1.png

bin目录放的是启动文件,conf放的是配置文件,extensions/plugins放的是插件。

 

2,下载sonar-scanner

下载地址:

https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

1.png

根据你操作系统选择下载,我下载的是2.8版本,如果上面网址找不到2.8版本,可以试下这个下载地址:

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli

注意:sonerScanner对JDK版本也会有要求的,2.8支持java8


3,配置数据库

新建一个空库,数据库名自己取,比如取sonar

配置sonar

打开conf/sonar.properties文件,可以看到配置文件中默认写了各种数据链接的例子,在mysql那块,加入我们自己的数据库连接即可,如

sonar.jdbc.username=test

sonar.jdbc.password=test

sonar.jdbc.url=jdbc:mysql://192.168.1.104:13314/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

1.png

配置sonar-scanner

打开conf/sonar-scanner.properties文件,同样加入上面的数据库连接即可。

4,汉化包(此过程可跳过)

https://github.com/xuhuisheng/sonar-l10n-zh/releases

 

根据sonar的版本下载对应的汉化包,因为我下载的sonar6.6版本,所以下载

sonar-l10n-zh-plugin-1.18.jar

1.png

将下载jar包放到/extensions/plugins目录中

5,设置环境变量

为了方便使用sonar-scanner命令,需要为其设置环境变量

将配置好的sonarsonar-scanner上传到linux服务器上,我的是存放路径是/sterson

1.png

编辑/etc/profile文件,追加sonar-scanner路径:

export PATH=$PATH:/sterson/sonar-scanner-4.5.0.2216-linux/bin

然后执行 source /etc/profile 使环境变量配置生效。

使用sonar和sonar-scanner

1,启动sonar

进入sonar目录,比如我的路径是 /sterson/sonarqube-6.6/bin/linux-x86-64

启动命令: ./sonar.sh start

重启命令:./sonar.sh restart

停止命令:./sonar.sh stop

1.png

在浏览器访问http://192.168.41.164:9000/,看到正在启动,等启动完后,

点击登录,默认账号密码是admin

1.png

注意:启动时不能用root用户,不然会报错,因为wrapper不能以root来启动,所以需要创建一个普通用户来启动。

2,编辑sonar-project.properties

在需要扫描的源代码项目的根目录,创建sonar-project.properties文件,内容如下:

sonar.projectKey=my:project

sonar.projectName=THCompanyService

sonar.projectVersion=1.0

sonar.sources=/sterson/resource/THCompanyService/trunk/dev/src/main/java

sonar.java.binaries=/sterson/resource/THCompanyService/trunk/dev/target/classes

projectName:项目名称,自定义即可

projectVersion:项目版本

Sources:源代码路径

Binaries:项目编译后的class文件的目录

1.png

3,扫描

进入源代码所在根目录,执行sonar-scanner,可看到开始扫描。

1.png

注意:如果报/bin/sh: sonar-scanner: 未找到命令,则尝试建立连接,命令如下:

ln -sv /sterson/sonar-scanner-4.5.0.2216-linux/bin/sonar-scanner /usr/local/bin/sonar-scanner

/sterson/sonar-scanner-4.5.0.2216-linux/bin/sonar-scanner,这个是我的路径,需要改成你实际的路径

扫描结束后,返回到浏览器sonar查看结果:

1.png


安装sonar-pdf-plugin

 

到此网址下载

https://gitee.com/zzulj/sonar-pdf-plugin

注意:这里只提供源码,下载后需要用maven编译生成jar包,所以如果你还没安装maven,要先安装maven,然后执行命令:

mvn clean package -Dmaven.test.skip=true

编译后会生成sonar-pdfreport-plugin-3.0.3.jar

jar包放到sonar的extensions/plugins目里,重启sonar。

然后在sonar的配置中就可以看到pdf了。

1.png 

注意:需要每个配置项都设置并保存。UsernamePassword我设置的是与sonar的一样。

否则扫描过程会报如下错误:

INFO: Can't get Compute Engine task status.Retry.........

ERROR: Problem generating PDF file.

org.sonar.report.pdf.entity.exception.ReportException: Can't get Compute Engine task status

 

设置sonar web 内存 

修改/conf/sonar.properties文件,在文中搜索这两项,去掉前面的#号。

注间:javaOpts的设置的值不能大于ce的值,否则启动报错。

sonar.web.javaOpts=-Xmx1024m -Xms512m -XX:+HeapDumpOnOutOfMemoryError

 

sonar.ce.javaOpts=-Xmx1024m -Xms128m -XX:+HeapDumpOnOutOfMemoryError

 

设置sonara-scanner内存

修改/etc/profile文件,追加如下配置:

export SONAR_SCANNER_OPTS="-Xms256m -Xmx2048m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=256m"



该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友

 

 

粤ICP备19116230号
友情链接: 码农藏书阁 天天链